package bombita.vista.Titiritero;

import ar.uba.fi.algo3.titiritero.controlador.CentralControlador;
import ar.uba.fi.algo3.titiritero.vista.Panel;
import ar.uba.fi.algo3.titiritero.vista.Ventana;

public class VentanaPrincipal
{
	private static VentanaPrincipal singleton;
	private CentralControlador controlador;
	private Ventana ventana;
	private Panel panelActivo;

	private VentanaPrincipal ()
	{
		controlador = new CentralControlador();
		ventana = new Ventana(controlador);
		ventana.setTitle("Bombita Rodriguez");
		ventana.setResizable(false);
	}
	
	public static VentanaPrincipal instance()
	{
		if (singleton == null) {
			singleton = new VentanaPrincipal();
		}
		return singleton;
	}
	
	public void setPanel (Panel nuevoPanel)
	{
		if (panelActivo != null) {
			panelActivo.setVisible(false);
			ventana.remove(panelActivo);
			ventana.validate();
		}
		if (nuevoPanel == null) {
			ventana.setVisible(false);
		} else {
			ventana.add(nuevoPanel);
			ventana.setVisible(true);
			ventana.pack();
			try {
				Thread.sleep(200);
			} catch (InterruptedException e) {}
			ventana.setLocationRelativeTo(null);
			nuevoPanel.requestFocusInWindow();
			nuevoPanel.setVisible(true);
		}
		panelActivo = nuevoPanel;
	}

	public CentralControlador controlador ()
	{
		return controlador;
	}
}
